The present invention relates to meta-models and more specifically to a service-oriented architecture industry model repository meta-model with a standard based index and a visual interactive client.
Today enterprises are adopting a model-driven development (MDD) approach to architecting and designing both their business architecture and the supporting IT systems and applications. In order to promote the best practices and interoperability, both software vendors and industry associations are aggressively developing and marketing industry models to support MDD. Enterprises gain enormous benefits of industry models, such as reusability, automation, traceability and speed to market. Service-Oriented Architecture (SOA) projects receive acceleration from industry models.
There are strong requirements to map associations and create traceability of various types of industry models (e.g. processes, services and data models) in a meaningful granularity, and integrate with business requirements, goals and software development life cycle. However, because each type of industry models is created and maintained in its own tooling, building linkages across different tools in a meaningful granularity is very difficult.
Industry models are difficult to find within an enterprise since they can be stored in asset repositories, document management systems, websites, etc. . . . Plus, once they are found, it is challenging to link the various occurrences of the industry models together. It is also difficult to maintain associations between the abstract (a.k.a. master) and instance (a.k.a. customized) versions of industry models in a meaningful granularity. Furthermore, maintaining associations among different incarnations of models is also difficult.
With the challenges associated to linking the various occurrences of the industry models together, solutions currently used are to use a text search engine index and to define proprietary meta-models and manage associations in an industry model repository, typically in a relational database.
It is widely accepted in the Industry that the prescriptive reuse of models and other assets holds some promise in enabling the use of models to drive down the cost of software development and maintenance and therefore also make the use of model assets in the software development lifecycle accessible to a significantly broader group of practitioners than is the case today. It is therefore imperative that these practitioners have available a search mechanism to locate model assets in order to realize the potential of the model based approach to software development.
Many techniques are available to be used within a repository to search for assets. Recipes, taxonomies, ontologies, and classification schemas can all be used to aid in the search process. For example, a classification schema may be used to provide a structure for classifying assets. The values from the classification schema are stored in the asset's classification section. The most difficult and often least valuable approach for searching for assets is using keywords. However, using keywords is in fact the basis for most common search capabilities provided with model repositories today. The notion of expecting someone searching for specific assets to be able to enter a keyword that is exactly the same as was used when adding the asset (packaging the asset) into the repository is extremely hit and miss and results in many assets not being found. Furthermore, it is difficult enough even with structured searching mechanisms as above, to find and evaluate an asset, but it is even more difficult to understand how multiple assets can be used together when one is not familiar with them.
Two major styles of searching these kinds of repositories for specific content referred to as assets, are opportunistic searching and systematic searching. Assets may be organized and contained within folders in the repositories, which is an opportunistic approach to helping the user identify relevant assets.
With opportunistic searches, repositories are browsed, with or without a folder structure or searches based on keywords and phrases are conducted. While the text search engine index is easy to implement, it can only perform strict text search and the results are imprecise since they are based on the face value of text and lack inference logic and query language. The search results from the text search engine index will often result in too many results.
Proprietary meta models often use opportunistic searching since they can be constructed to allow precise and rich semantic indexing. The proprietary meta models manage abstract and not instance versions of industry models and is aware of artifacts in its own environment only. Opportunistic-style techniques are used in this kind of asset search and reuse, however searching in this manner is hit and miss and can therefore erode the value proposition of the assets, particularly if reuse is scaled to larger groups of people and across boundaries, teams, time zones, and skill sets.
The second style of searching is systematic searching which is a more prescriptive form of search. In systematic searching, associations among assets are defined or discovered and these relationships are used to narrow down and identify the assets being sought. Recipes are a good metaphor for this style of searching: In a recipe we have a list of ingredients (assets) and the guidance to “mix” them. Recipes also have the benefit of being customizable. Rather than searching for all the ingredients, a solution (the recipe) can be sought that points to all the ingredients (assets) needed. It offers the advantage of saving time. More value can be created by producing a set of recipes that mix multiple assets together to form larger-grained, yet customizable solutions.